﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Abp.Application.Services;
using Abp.Application.Services.Dto;
using DevM.Development.Projects.Dto;
using DevM.Roles.Dto;

namespace DevM.Development.Projects
{
    public interface IProjectAppService:IApplicationService
    {
        Task<ProjectDto> CreateProject(AddProjectInput input);
        Task<ProjectDto> UpdateProject(UpdateProjectInput input);
        Task DeleteProject(EntityDto<long> projectId);
        Task<PageOutput<ProjectDto>> GetProjectList(GetProjectListInput input);
        Task<ProjectDto> GetProject(EntityDto<long> projectId);

        Task<EnvironmentDto> CreateEnvironment(AddEnvironmentInput input);
        Task<EnvironmentDto> UpdateEnvironment(UpdateEnvironmentInput input);
        Task DeleteEnvironment(EntityDto<long> environmentId);
        Task<List<EnvironmentDto>> GetEnvironmentList(EntityDto<long> projectId);
        Task<EnvironmentDto> GetEnvironment(EntityDto<long> environmentId);
        
        Task<List<RoleDto>> GetAllRoles();

    }
}
